<?php
/**
 * Game_Unit_UnitsGroup
 *
 * Класс Game_Unit_UnitsGroup отвечает за обработку групп юнитов
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Game_Unit_UnitsGroup extends ActiveRecord {
	
	protected static $_tableName = 'units_group';
	protected static $_pkName = 'ID_units_group';
	
	private $_arrUnitsInGroup;
	
	/**
	 * Записать координаты
	 * 
	 * @param Game_Coordinates $objCoordinates
	 */
	public function setCoordinates(Game_Coordinates $objCoordinates) {
		$arrCordinates = $objCoordinates->getCoordinatesData();
		foreach ($arrCordinates as $coordId => $coordValue) {
			$this->setField('goal_coord_' . $coordId, $coordValue);
		}
	}
	
	/**
	 * Сохранение информации по войскам в группе отправки
	 * 
	 * @param array $arrTroops
	 * @return boolean
	 */
	public function saveTroopsInfo(array $arrTroops) {
		if (!$this->id || !$arrTroops) return false;
		
		$stmt = "";
		foreach ($arrTroops as $unitId => $unitsAmount) {
			$stmt .= (empty($stmt) ? null : ', ') . "('" . $this->id . "' , '" . $unitId . "', '" . $unitsAmount . "')";
		}
		$stmt = "
			INSERT INTO `units_in_group`
			(`ID_units_group`, `ID_unit`, `amount`)
      VALUES
		" . $stmt;
		$objDb = Service_Database::instance();
		return $objDb->query($stmt);
	}
	
	/**
	 * Получает список юнитов в группе
	 */
	public function getUnitsInGroup() {
		if (!$this->id) return array();
		if (empty($this->_arrUnitsInGroup)) {
			$stmt = "
				SELECT * FROM `units_in_group`
				WHERE `ID_units_group` = '" . $this->id . "'
			";
			$objDb = Service_Database::instance();
			$this->_arrUnitsInGroup = $objDb->select($stmt); 
		}
		return $this->_arrUnitsInGroup;
	}
	
	
}
?>